import {defineConfig} from "vite";
import vue from "@vitejs/plugin-vue";
import {internalIpV4} from "internal-ip";
import {resolve} from 'path';
import viteCompression from 'vite-plugin-compression';
import AutoImport from 'unplugin-auto-import/vite'
// @ts-expect-error process is a nodejs global
const mobile = !!/android|ios/.exec(process.env.TAURI_ENV_PLATFORM);

// https://vitejs.dev/config/
export default defineConfig(async () => ({
    plugins: [vue(), viteCompression(),
        AutoImport({}),
    ],
    resolve: {
        alias: {
            '@': resolve(__dirname, './src'),
        },
    },
    clearScreen: false,
    // 2. tauri expects a fixed port, fail if that port is not available
    server: {
        port: 1420,
        strictPort: true,
        host: mobile ? "0.0.0.0" : false,
        hmr: mobile
            ? {
                protocol: "ws",
                host: await internalIpV4(),
                port: 1421,
            }
            : undefined,
        watch: {
            // 3. tell vite to ignore watching `src-tauri`
            ignored: ["**/src-tauri/**"],
        },
    },
}));
